The Emu's shader utility library.  A library of generaly useful shaders
and of various other stuff for use in iStripper scene development.

See "TheEmuLib = 00 - Terms Of Use.txt" for the terms of use that apply
to this library.

The library comprises the set of files in the following the directories
and their subdirectories.

   TheEmuLib = Library
     |
     +-- Backgrounds
     |
     +-- Images
     |
     +-- Shader Lib.Utilities
     |
     +-- Shaders
     |
     +-- Textures
 
Where the Shaders directory comprises the main part of the library with
Shader Lib.Utilities providing support features. The other directories,
i.e Backgrounds, Images and Textures are not part of the shader library
but provide libraries of images of various sorts that may be used  with
or without shaders in an iStripper scene.

The contents of each of the directories,  with brief descriptions,  are
as follows:-

  TheEmuLib = Library - Top level directory of the library.  Contains
  files describing the library, its use and its terms of use together
  with a set of iStripper scene (.scn) files used to test the library
  and to demonstrate the effects that can be produced.

  Backgrounds - A number of subdirectories holding sets of background
  images.  These are primarily for use by the library's test and demo
  scenes but may be freely used elsewhere.  Extra sets of backgrounds
  may be added to the library from time to time. 

  Images - A number of subdirectories holding sets of images that may
  be used as components in a scene.  Often  these subdirectories hold
  the images of minor items of general use that could be used in many
  scenes,  e.g. "Garden Plants",  but other subdirectories might hold
  the particular components used in a very specific scene is any such
  scenes are added to the library should any such scene may be needed
  to test a particular shader.  The "Test Tiles" subdirectory is used
  for special images specificaly designed for use in test scenes. 

  Textures - A number of subdirectories holding sets  of  images  for
  use as textures - where texture has its normal English meaning, not
  the more general meaning it has now acquired for computer graphics.
  There are two main sets of directories,  those that contain "noise"
  textures and those that contain more general patterns.  Please note
  that many of these textures may be seamlessly tiled but this is not
  the case for all of them unless this property is indicated  in  the
  either the name of the subdirectory or of the texture itself.

  Shaders - A collection of GLSL shaders for use in iStripper scenes.
  These shaders are intended to be of general use rather  than  being
  designed for specific scenes.   A consistant naming scheme has been
  used for these shaders and for the parameters that may be passed to
  them from iStripper scene description files (.scn files).  For each
  of these shaders there should be one or more, often many more, test
  and demonstration scenes in the top level directory of the library,
  these scenes may be used to determine which, if any, of this set of
  shaders are of interrest and to give some idea of the range of  the
  effects that they may produce. Comments at the start of each shader
  provide a brief description of what it does and the declarations of
  each shader control parameter are also described by comments in the
  shader.

  Shader Lib.Utilities - A collection of fragments of GLSL  code  for
  use in shaders.  These code fragments perform common functions used
  in the shaders. If GLSL provided some means to import code from one
  file into another,  even something as crude as the C preprocessor's
  #include facility, then it would have been used in the shaders.  In
  the absence of such a facility the approach taken is to define sets
  of related functions, or macros, in files in this subdirectory  and
  then to copy the required parts into the shaders  themselves.  This
  has been done in a consistant manner and comments indicate which of
  the utility source files the code fragments have been copied from.

At some point I hope to provide a proper user's manual for the library,
something describing each of the shaders and their use,  but  it may be
quite some time in the future before I am able to produce it.

Note, the names of the top level directory and of the scene files in it
are consistant with the directory and file naming scheme that I use for
for all iStripper scenes.  When this naming scheme was devised when the
iStripper (then called VGHD) interface listed the scenes as a two level
tree based on the file names (ignoring the directory names).  This  led
resulted in long file names as they had to encode more information than
the basic name in order to have them grouped meaningfuly when listed by
the software.  The  current iStripper software does not list the scenes
in this way but I have retained the naming convention because  I  still
want related scenes to at least appear next to each other in  the  list
of available scenes that iStripper now produces. Totem acknowledged the
fact that their current scheme does not work well for large collections
of scenes and will, I hope, provide some alternative way to display the
scene list.  When and if this happens it may be necessary to rename the
scenes to make effective use of whatever is provided, until then I will
use the old file naming scheme even though the long scene file names it
produces are trucated when displayed by the current iStripper program.
